
using System;
using System.Windows;

internal abstract class UI
{

    internal NES getNES() {
        return NES; }
    internal InputHandler getJoy1() {
        return Joy1; }
    internal InputHandler getJoy2() {
        return Joy2; }
    internal BufferView getScreenView() {
        return ScreenView; }
    internal BufferView getPatternView() {
        return PatternView; }
    internal BufferView getSprPalView() {
        return SprPalView; }
    internal BufferView getNameTableView()
    {
        return NameTableView;
    }
    internal BufferView getImgPalView() {
        return ImgPalView; }
    internal HiResTimer getTimer() {
        return null; }

    internal abstract void imageReady(bool skipFrame);
    internal abstract void init(bool showGui);
    internal string getWindowCaption(){
        return "";}
    internal void setWindowCaption(string s) {}

    internal void setTitle(string s) {}
    internal Point getLocation(){
        return Location;}
    internal int getWidth(){
        return Width;}
    internal int getHeight(){
        return Height;}

    internal void println(string s)
    {
        System.Console.WriteLine(s);
    }
    internal void showErrorMsg(string msg)
    {
            System.Console.WriteLine(msg);

    }

    internal abstract int Height { get; }

    internal abstract BufferView ImgPalView { get; }

    internal abstract KbInputHandler Joy1 { get; }

    internal abstract KbInputHandler Joy2 { get; }

    internal abstract Point Location { get; }

    internal abstract BufferView NameTableView { get; }

    internal abstract NES NES { get; }

    internal abstract BufferView PatternView { get; }

    internal abstract BufferView ScreenView { get; }

    internal abstract BufferView SprPalView { get; }

    internal abstract int Width { get; }
	
}